part of 'month_data_merging_bloc.dart';

sealed class MonthDataMergingState extends Equatable {
  const MonthDataMergingState();
}

final class MonthDataMergingInitial extends MonthDataMergingState {
  @override
  List<Object> get props => [];
}

final class MonthDataMergingSelectChildDataState extends MonthDataMergingState {
  final List<File> childFiles;

  const MonthDataMergingSelectChildDataState({required this.childFiles});

  @override
  List<Object> get props => [childFiles];
}

final class MonthDataMergingOpenFileState extends MonthDataMergingState {
  final File? file;
  const MonthDataMergingOpenFileState({this.file});

  @override
  List<Object?> get props => [file];
}

final class MonthDataMergingChildFilesClearState extends MonthDataMergingState {
  @override
  List<Object> get props => [];
}

final class MonthDataMergingRemoveChildFileState extends MonthDataMergingState {
  final int index;
  final File childFile;
  const MonthDataMergingRemoveChildFileState({required this.index, required this.childFile});
  @override
  List<Object> get props => [index, childFile];
}

final class MonthExtractChildFileLoadingState extends MonthDataMergingState {
  @override
  List<Object?> get props => [];
}

final class MonthExtractChildFileSuccessState extends MonthDataMergingState {
  final List<List<dynamic>> originDataTemp;
  const MonthExtractChildFileSuccessState({required this.originDataTemp});

  @override
  List<Object> get props => [originDataTemp];
}

class MonthExtractChildFileProcessState extends MonthDataMergingState {
  final String msg;

  const MonthExtractChildFileProcessState({required this.msg});
  @override
  List<Object> get props => [msg];
}

final class MonthExtractChildFileFailureState extends MonthDataMergingState {
  final String msg;
  const MonthExtractChildFileFailureState({required this.msg});

  @override
  List<Object> get props => [msg];
}

final class MonthDataMergingSelectMainDataState extends MonthDataMergingState {
  final File mainFile;
  const MonthDataMergingSelectMainDataState({required this.mainFile});
  @override
  List<Object> get props => [mainFile];
}

final class MonthDataMergingResetMainDataState extends MonthDataMergingState {
  const MonthDataMergingResetMainDataState();
  @override
  List<Object> get props => [];
}

class MonthMergingXlsxDataProgressState extends MonthDataMergingState {
  final String resultMsg;
  final double margeProgress;
  const MonthMergingXlsxDataProgressState({required this.resultMsg, required this.margeProgress});
  @override
  List<Object?> get props => [resultMsg, margeProgress];
}

final class MonthExtractMainFileSuccessState extends MonthDataMergingState {
  final String msg;
  const MonthExtractMainFileSuccessState({required this.msg});

  @override
  List<Object> get props => [msg];
}

final class MonthExtractMainFileFailureState extends MonthDataMergingState {
  final String msg;
  const MonthExtractMainFileFailureState({required this.msg});

  @override
  List<Object> get props => [msg];
}
